# -*- coding: utf-8 -*-

def CheckBit(value, nomberBit):
    bit = (value & pow(2,nomberBit))
    if bit != 0:
        return True
    else:
        return False

def DropBit(value, nomberBit):
    mack = SetBit(0, nomberBit)
    return (value & ~mack)

def SetBit(value, nomberBit):    
    mask = pow(2, nomberBit)
    return (value | mask)
    
"""
поставить — X or (2^bitnumber)
убрать бит — X and not (2^bitnumber)


Sub Test()
If (X And 2^(номер_бита))<>0 Then 
    MsgBox "Бит номер " & (номер_бита) & " установлен!"
Else
    MsgBox "Бит номер " & (номер_бита) & " не установлен!"
EndIf

' Без if
bit = CBool(X And 2^(номер_бита))

' Ставлю бит (номер_бита)
X = X Or (2^(номер_бита))

'Убираю бит (номер_бита)
X = X And Not (2^(номер_бита))

'Переключаю бит на противоположный
X = X Xor (2^(номер_бита))
End Sub
"""    
